package Ep01_Array.Feb24th_2357;

import java.util.HashSet;
import java.util.Set;

/**
 * @author Jimmy Zhan WORKSTATION
 * @Date 2023/2/24 14:44
 * 说明：力扣每日 2357 —— 贪心
 * 哈希集合
 * 由于每次操作都将数组中的所有非零元素减少一个相同的值，因此数组中的相等元素减少到 0的操作数相等，数组中的不相等元素减少到 0的操作数不相等。
 * 又由于使用贪心策略操作时，每次操作都会将数组中的最小非零元素减少到 0，因此最少操作数等于数组中的不同非零元素的个数。
 * 使用哈希集合存储数组中的所有非零元素，则哈希集合的大小等于数组中的不同非零元素的个数，即为最少操作数。
 * 需要注意的是，由于目标是将数组中的所有元素减少到 0，如果数组中的一个元素已经是 0则不需要对该元素执行操作，因此只需要考虑数组中的不同非零元素的个数。
 */

public class Best {
    public static void main(String[] args) {
        int[] nums = {0, 0, 0, 0, 0};
        Best b = new Best();
        System.out.println(b.minimumOperations(nums));
    }
    public int minimumOperations(int[] nums){
        Set<Integer> set = new HashSet<Integer>();
        for (int num : nums){
            if (num > 0){
                set.add(num);
            }
        }
        return set.size();
    }
}
